課程資訊
課程名稱
演算法
The Design and Analysis of Algorithms 
開課學期
111-2 
授課對象
電機資訊學院  生醫電子與資訊學研究所  
授課教師
劉智弘 
課號
EE5048 
課程識別碼
921 U2110 
班次
 
學分
3.0 
全/半年
半年 
必/選修
選修 
上課時間
星期五7,8,9(14:20~17:20) 
上課地點
電二144 
備註
總人數上限:50人 
 
課程簡介影片
 
核心能力關聯
核心能力與課程規劃關聯圖
課程大綱
為確保您我的權利,請尊重智慧財產權及不得非法影印
課程概述

Basic techniques for the design and analysis of algorithms. 

課程目標
1. Classical algorithm design techniques
2. Evaluation of the performance of different algorithms. 
課程要求
助教
梁峻瑋 d10943012@ntu.edu.tw
張祐承 brian.123.2.22@gmail.com 
預期每週課後學習時數
 
Office Hours
 
指定閱讀
 
參考書目
Introduction to Algorithms, fourth edition, by Cormen, Leiserson, Rivest, and Stein 
評量方式
(僅供參考)
 
No.
項目
百分比
說明
1. 
作業1 
15% 
 
2. 
作業2 
15% 
 
3. 
期中考 
30% 
 
4. 
期末考 
40% 
 
 
課程進度
週次
日期
單元主題
第1週
2/24  Introduction
1. What are algorithms?
2. Asymptotic Notations (Chapter 3)
3. Examples:
- Bubble Sort (Problem 2-2)
- Insertion Sort (Section 2.1) 
第2週
3/3  Divide and Conquer (Chapter 4)
1. MergeSort (Section 2.3.1)
2. Substitution Method (Section 4.3)
3. The recursion tree method (Section 4.4.)
4. The master method (Section 4.5)
5. Strassen's algorithm (Section 4.1-4.2)
 
第3週
3/10  Sorting Algorithms
1. Heap and HeapSort (Chapter 6)
2. Counting Sort (Section 8.2)
3. Radix Sort (Section 8.3)
4. Bucket Sort (Section 8.4)  
第4週
3/17  Sorting Algorithm (continue)
5. QuickSort (Chapter 7)
6. Lower Bounds for Sorting (Section 8.1)  
第5週
3/24  Selection
1. Quick Selection (Section 9.1)
2. Median of Medians (Section 9.2)

Dynamic Programming
1. Fibonacci Numbers
2. Longest Common Subsequence (Section 14.4) 
第6週
3/31  Dynamic Programming
3. Matrix Chain Multiplication (Section 14.2)

Greedy Algorithms
1. Activity Selection (Section 15.1)
2. Hoffman Code (Section 15.2) 
第7週
4/7  Greedy Algorithms
2. Hoffman Code ( continued)

Brushup for the Midterm Exam 
第8週
4/14  Midterm Exam 
第9週
4/21  Elementary Graph Algorithms (Chapter 20)
1. Basic Definitions
2. Depth-First Search
3. Breadth-First Search 
第10週
4/28  Elementary Graph Algorithms (Chapter 20, continued)
4. Topological Sort
5. Strongly Connected Components

Minimum Spanning Trees (Chapter 21)
1. Key Properties
2. Prim Algorithm
 
第11週
5/5  Minimum Spanning Trees (Chapter 21, continued)
3. Kruskal Algorithms

Single-Source Shortest Paths (Chapter 22)
1. Basic Properties
2. Bellman-Ford Algorithm
3. Directed Acyclic Graph
4. Dijkstra Algorithm